package _go

/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val   int
 *     Left  *TreeNode
 *     Right *TreeNode
 * }
 */

//解法一  利用二叉搜索数的特性 如果都小于根就在左子树上  如果都大于根 就在又节点上 否则就返回根节点
func lowestCommonAncestor(root, p, q *TreeNode) *TreeNode {
	if root == nil {
		return nil
	}
	for {
		if q.Val < root.Val && p.Val < root.Val {
			root = root.Left
		} else if q.Val > root.Val && p.Val > root.Val {
			root = root.Right
		} else {
			return root
		}
	}
}
